<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
    
</head>
<body>
    <div id="app"></div>
</body>
<script>
    const app = Vue.createApp({
        data(){
            return{
                list:['111','222','333'],
                inputvalue:'',
                pay:()=>{
                    alert("你好")
                }
            }
        },
        methods:{
            handAddItem(){
                this.list.push(this.inputvalue)
                // 清空输入框
                this.inputvalue = ''
            }
        },
        template:`
            <div>
                <my-title />
                <input v-model="inputvalue"/>
                <button v-on:click="handAddItem">增加信息</button>
            <ul>
                <my-jiali v-for="(item,index) of list" v-bind:item="item" v-bind:index="index"/>
            </ul>
            <sayhello :pay="pay"/>
            </div>
        `
    })
    // 静态组件--------全局组件
    app.component('my-title',{
        template:'<h1 style="text-align:center">标题</h1>'
    })
    // 动态组件--------全局组件
    app.component('my-jiali',{
        // 接受父组件传递过来的参数,然后动态显示出内容
        props: ['item', 'index'],
        template:'<li>[{{index}}]-----{{item}}</li>'
    })

    // 动态组件--------函数传值
    app.component('sayhello',{
        // 接受父组件传递过来的参数,然后动态显示出内容
        props: ['pay'],
        methods:{
            say(){
                alert('hello')
                // 使用父组件的参数
                this.pay()
            }
        },
        template:'<button @click="say">你好</button>'
    })
    app.mount("#app");
</script>
</html>